技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
0
我從 Angular 中分離出來依賴註入:`static-injector`
angular
nodejs
web
frontend
wszgrcy
2024-03-24 14:05:04
‧
612 瀏覽
分享至
Angular 中的依賴註入確實非常好用,可以使服務之間的依賴關系變得更加靈活和可復用
但是只能在 Angular 中的使用限製了他的發揮,需要讓他在所有 node/前端 平臺上都可以使用
如何使用?
如果你並不關心是如何實現的,可以直接
訪問使用文檔
為什麽不寫一個與 Angular 依賴註入相同的包
一個成熟的功能往往經過了多方面的考量,所以如果能不造輪子那麽是最好的
直接使用 Angular 的源碼可以保證功能與官方一直同步,不需要擔心自己實現的邏輯與官方之間存在差異
node/前端使用同樣的邏輯沒有心智負擔
直接復製代碼就能使用了?
當然不是,首先 Angular 中的源碼都是為了它自身設計服務的,所以會有一些我們不需要的功能需要刪減.比如
@Module
會有依賴註入相關的代碼,
@Host
等組件裝飾器,還有更多非通用依賴都需要去除
Angular 使用依賴註入為靜態依賴註入,所以需要實現自己的靜態編譯方法,保證代碼與官方一致
需要創建接口,對接並調用 Angular 源碼,使得功能正常運行
運行成功就結束了?
運行成功不是結束,反而是開始的第一步,代碼成功獨立執行了,那麽接下來就要保證代碼能與
Angular
官方同步,不錯過新的特性,也不錯過缺陷修復
所以我們要找到一種可以穩定修改代碼的方法,可以隨著項目更新自動對代碼進行裁剪,然後針對裁剪結果進行細微調整,減少工作量
使用
Code Recycle
對代碼進行穩定更新同步
更新同步腳本
通過腳本對 Angular 源碼進行拉取,使用 css 選擇器語法查詢並修改代碼
修改代碼之後對代碼進行測試
每次更新後只需要修改 tag => 同步更新 => 測試 => 調整(如果有問題) => 發布.減少了手工修改可能產生的問題
如何知道倉庫支持哪些功能
查看用例
所有存在的用例均經過了測試驗證,如果您有其他功能需要使用也可以提交 issue
留言
追蹤
檢舉
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19866
篇
完賽人數
529
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
.NET C# 資料庫 CRUD 專案,實務上會怎麼安排單元測試 / 整合測試?xUnit 可以直接拿來寫整合測試嗎?
關於中華nokia數據機DHCP問題
.NET FRAMEWORK 3.5 安裝
OUTLOOK無法搜尋、無法建立索引且無法執行Windows Search
鼎新ERP WorkFlow GP3升級到AiGP
不能關機
Fortigate防火牆的選擇??
k8s CKS/CKAD 這兩張推薦去考嗎?
Windows更新像跑馬燈以致無法進入桌面
還能怎麼加固安全?
熱門回答
.NET FRAMEWORK 3.5 安裝
鼎新ERP WorkFlow GP3升級到AiGP
Fortigate防火牆的選擇??
關於中華nokia數據機DHCP問題
.NET C# 資料庫 CRUD 專案,實務上會怎麼安排單元測試 / 整合測試?xUnit 可以直接拿來寫整合測試嗎?
熱門文章
再見了 Ingress NGINX
[技術實戰] 拒絕雲端洩密!我用 Docker + Llama 3 打造工程師專用的「100% 離線」AI 研發資料庫
坊間ISO課程個人理解
【2025 最強 AI IDE】Kiro Spec Mode:30 分鐘從 0 做出可部署 AWS 專案,VS Code 真的要掰了
Excel下拉選單自訂秘技,資料篩選更快速
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}